close all; clear; clc;
I = imread('blood.bmp');% 读取图像
laplacianKernel = [0 1 0; 1 -4 1; 0 1 0]% 定义标准拉普拉斯算子

% 展示基本的拉普拉斯 和 Sobel对比
I_laplacian = imfilter(double(I), laplacianKernel, 'replicate');% 应用拉普拉斯算子
sobelKernelX = fspecial('sobel');       % 定义Sobel算子
sobelKernelY = fspecial('sobel').';     % 转置得到垂直方向的Sobel算子

% Sobel算子
I_sobelX = imfilter(double(I), sobelKernelX, 'replicate');
I_sobelY = imfilter(double(I), sobelKernelY, 'replicate');
I_sobel = sqrt(I_sobelX.^2 + I_sobelY.^2);  %平方和 开根号 梯度幅度

% 转换结果为uint8 适合显示
I_laplacian = mat2gray(I_laplacian) * 255;
I_laplacian = uint8(I_laplacian);
I_sobel = mat2gray(I_sobel) * 255;
I_sobel = uint8(I_sobel);

% 显示原图与处理后的图像
subplot(1, 3, 1);imshow(I);title('原始图像');
subplot(1, 3, 2);imshow(I_laplacian);title('拉普拉斯锐化');
subplot(1, 3, 3);imshow(I_sobel);title('Sobel锐化');


